package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.common.core.domain.entity.YxAndroidApplicationVo;
import com.ruoyi.system.domain.YxAndroidApplication;
import com.ruoyi.system.domain.YxDeviceAndApp;

/**
 * android应用Service接口
 * 
 * @author lingyu
 * @date 2024-03-04
 */
public interface IYxAndroidApplicationService 
{
    /**
     * 查询android应用
     * 
     * @param id android应用主键
     * @return android应用
     */
    public YxAndroidApplication selectYxAndroidApplicationById(Long id);

    /**
     * 查询android应用
     *
     * @param packageName android应用包名
     * @return android应用
     */
    public YxAndroidApplication selectYxAndroidApplicationByPackageName(String packageName);

    /**
     * 查询android应用
     *
     * @param packageNames android应用主键
     * @return android应用
     */
    public List<YxAndroidApplication> selectYxAndroidApplicationByPackageNames(List<String> packageNames);

    /**
     * 查询android应用列表
     * 
     * @param yxAndroidApplication android应用
     * @return android应用集合
     */
    public List<YxAndroidApplication> selectYxAndroidApplicationList(YxAndroidApplication yxAndroidApplication);

    /**
     * 查询android应用列表
     *
     * @param deviceId deviceId
     * @return android应用集合
     */
    public List<YxAndroidApplicationVo> selectYxAndroidApplicationByDeviceId(String deviceId);

    /**
     * 查询android应用列表
     *
     * @param deviceId deviceId
     * @param status status
     * @return android应用集合
     */
    public List<YxAndroidApplicationVo> selectYxAndroidApplicationByDeviceIdAndStatus(String deviceId,Integer status);


    /**
     * 新增android应用
     * 
     * @param yxAndroidApplication android应用
     * @return 结果
     */
    public int insertYxAndroidApplication(YxAndroidApplication yxAndroidApplication);

    /**
     * 批量插入 android应用
     *
     * @param yxAndroidApplications
     * @return 结果
     */
    public int insertYxAndroidApplications(List<YxAndroidApplication> yxAndroidApplications);

    /**
     * 修改android应用
     * 
     * @param yxAndroidApplication android应用
     * @return 结果
     */
    public int updateYxAndroidApplication(YxAndroidApplication yxAndroidApplication);


    /**
     * 修改android应用
     *
     * @param yxAndroidApplications android应用
     * @return 结果
     */
    public int updateYxAndroidApplications(List<YxAndroidApplication> yxAndroidApplications);


    /**
     * 批量删除android应用
     * 
     * @param ids 需要删除的android应用主键集合
     * @return 结果
     */
    public int deleteYxAndroidApplicationByIds(Long[] ids);

    /**
     * 删除android应用信息
     * 
     * @param id android应用主键
     * @return 结果
     */
    public int deleteYxAndroidApplicationById(Long id);
}
